// 当a，b在100000的范围时，使用预处理阶乘的方法
// 并且由于除法不能保证准确性，采用逆元的方法
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;

const int N = 100010;
const int p = 1e9 + 7;
LL frac[N], infrac[N];

int qmi(int a, int k, int p)
{
    int res = 1;
    while (k)
    {
        if (k & 1)
            res = (LL)res * a % p;
        k >>= 1;
        a = (LL)a * a % p;
    }
    return res;
}

void init()
{
    frac[0] = infrac[0] = 1;
    for (int i = 1; i < N; ++i)
    {
        frac[i] = frac[i - 1] * i % p;
        infrac[i] = infrac[i - 1] * qmi(i, p - 2, p) % p;
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    int n;
    cin >> n;
    init();
    while (n--)
    {
        int a, b;
        cin >> a >> b;
        cout << frac[a] * infrac[a - b] % p * infrac[b] % p << endl;
    }
    return 0;
}
